#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <errno.h>
#include <utime.h>
// struct utimebuf
// {
//     time_t actime;
//     time_t modtime;
// };
int main(int argc, char *args[])
{
    int i;
    struct stat statbuf;
    struct utimbuf times;
    if (argc != 2)
    {
        fprintf(stderr, "argc error!\n");
        exit(-1);
    }
    if (stat(args[1], &statbuf) < 0)
    {
        fprintf(stderr, "0:args[1]\n");
        exit(-1);
    }
    if (open(args[1], O_RDWR | O_TRUNC) < 0)
    {
        fprintf(stderr, "0 : args[1]\n");
    }
    printf("%s is truncated...\n", args[1]);
    times.actime = statbuf.st_atime;
    times.modtime = statbuf.st_mtime;
    if (utime(args[1], &times) == 0)
    {
        printf("utime() successful...\n");
    }
    else
    {
        perror("ERROR: utime() failed");
        exit(-1);
    }
    return 0;
}